package com.dark.util;

import java.util.Calendar;
import java.util.Date;

/**
 * ClassName: DateUtil
 * Description:DateUtil
 *
 * @author chengluchao
 * @date: 2023/8/26 4:26 PM
 * @since 1.4.35
 */
public class DateUtil {
    /**
     * 根据指定的时间数量和单位，获取未来的日期
     *
     * @param amount 时间数量
     * @param unit   时间单位，支持Calendar的时间单位，如Calendar.YEAR，Calendar.MONTH等
     * @return 未来的日期
     */
    public static Date getFutureDate(int amount, int unit) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.add(unit, amount);
        return calendar.getTime();
    }

    public static void main(String[] args) {
        // 获取100年后的日期
        Date futureDate = getFutureDate(100, Calendar.YEAR);
        System.out.println("100 years later: " + futureDate);

        // 获取1个月后的日期
        Date futureMonth = getFutureDate(1, Calendar.MONTH);
        System.out.println("1 month later: " + futureMonth);

        // 获取1天后的日期
        Date futureDay = getFutureDate(1, Calendar.DAY_OF_MONTH);
        System.out.println("1 day later: " + futureDay);

        // 获取1分钟后的日期
        Date futureMinute = getFutureDate(1, Calendar.MINUTE);
        System.out.println("1 minute later: " + futureMinute);

        // 获取800毫秒后的日期
        Date futureMillis = getFutureDate(800, Calendar.MILLISECOND);
        System.out.println("800 milliseconds later: " + futureMillis);

        // 获取800毫秒后的日期
        Date futureMillis1 = getFutureDate(-10, Calendar.MINUTE);
        System.out.println("-10 milliseconds later: " + futureMillis1);
    }
}
